% Linux - The Road to Hacker <http://code.google.com/p/texsky/>
% Copyright (C) 2009  xiaogaozi <gaochangjian@gmail.com>
% 
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
% 
% You should have received a copy of the GNU General Public License
% along with this program.  If not, see <http://www.gnu.org/licenses/>.

\documentclass[utf8]{beamer}    % Be care of 'utf8', change it depend on your system.

\mode<presentation>
{
  \usetheme{Darmstadt}
  \usecolortheme{seahorse}
  \setbeamercovered{transparent}
}

\usepackage[english]{babel}
\usepackage{graphicx}

\usepackage{ctex}

% Title Page
\title{\textbf{Linux}}
\subtitle{\textbf{通往黑客之路}}
\author{高昌健 \\ \texttt{gaochangjian@gmail.com}}
\institute{三叶草桃源小组}
\date{2009年12月4日}

% This is only inserted into the PDF information catalog.
% Can be left out. 
\subject{Talks}

% Logo
\pgfdeclareimage[height=1cm]{logo}{pic/logo.jpg}
\logo{\pgfuseimage{logo}}

% For LaN
\newcommand{\LaN}{L{\scriptsize\hspace{-0.47em}\raisebox{0.23em}{A}}\hspace{-0.1em}N}

% Delete this, if you do not want the table of contents
% to pop up at the beginning of each section and subsection:
\AtBeginSection[]
{
  \begin{frame}<beamer>{概览}
    \tableofcontents[currentsection]
  \end{frame}
}
% \AtBeginSubsection[]
% {
%   \begin{frame}<beamer>{Outline}
%     \tableofcontents[currentsection,currentsubsection]
%   \end{frame}
% }

% % If you wish to uncover everything in a step-wise fashion,
% % uncomment the following command: 
% \beamerdefaultoverlayspecification{<+->}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{概览}
  \tableofcontents
\end{frame}

\section{文化与历史}

\subsection*{Cracker or Hacker?}

\begin{frame}[t]{Who is Cracker（骇客）?}
  \begin{itemize}
    \item 技术一般
    \item 没有责任感
    \item 具有强烈的虚荣心，喜欢炫耀。
    \item 喜欢恶意攻击与破坏他人的电脑
    \item 违背黑客（Hacker）道德准则
  \end{itemize}

  \alert{Cracker is NOT Hacker.}
\end{frame}

\begin{frame}[t]{Who is Hacker（黑客）?}
  \begin{block}{广义的解释}
    \begin{itemize}
      \item 对于某一领域具有强烈的好奇心与求知欲
      \item 并且精通这个领域的知识
      \item 喜欢自由，以及不受约束。
      \item 不会利用自己的知识与技术做坏事
    \end{itemize}
  \end{block}
  \pause
  \begin{block}{对于软件黑客}
    \begin{itemize}
      \item 具备广义解释中的所有特点
      \item 精通编程语言，具备很高的编程能力。
      \item 喜欢探寻计算机的本质
    \end{itemize}
  \end{block}
\end{frame}

\subsection*{Unix的历史}

\begin{frame}[t]{一个传奇的诞生——Unix}
  \begin{itemize}
    \item<1-> 主要开发者为Ken Thompson和Dennis Ritchie
    \item<2-> 1969年，Unix横空出世，来自Thompson一个月的壮举
    \item<3-> 1973年，用C语言完全重写，同时Dennis Ritchie也是C语言之父
    \item<4-> Unix影响着之后一代又一代的操作系统，如BSD、Solaris、HP-UX、AIX、Linux、Mac OS
  \end{itemize}
\end{frame}

\begin{frame}{Ken Thompson与Dennis Ritchie}
  \includegraphics[width=3.455555556in]{pic/Ken_n_dennis.jpg}
\end{frame}

\subsection*{Linux的历史}

\begin{frame}[t]{GNU Project}
  \begin{columns}
    \column{.6\textwidth}
      \begin{itemize}
        \item<1-> 1983年由Richard Stallman发起
        \item<2-> 旨在创造完全自由（free）的操作系统
        \item<3-> GNU是GNU's Not Unix的递归缩写
        \item<4-> Richard Stallman的杰作：Emacs、GCC、GDB
      \end{itemize}

    \column{.4\textwidth}
      \includegraphics[width=3.5cm]{pic/rms.jpg}
  \end{columns}
\end{frame}

\begin{frame}[t]{Linux的诞生}
  \begin{columns}
    \column{.6\textwidth}
      \begin{itemize}
        \item<1-> 1991年Linus Torvalds开始编写Linux内核
        \item<2-> 原因是不满MINIX对于自己电脑硬件的兼容性
        \item<3-> 1991年8月25日，Linus正式对外宣布，当时他22岁
        \item<4-> 后来GNU Project与Linux结合，成为如今的GNU/Linux
      \end{itemize}

    \column{.4\textwidth}
      \includegraphics[width=3.5cm]{pic/Linus_Torvalds.jpeg}
  \end{columns}
\end{frame}

\subsection*{其他著名的黑客}

\begin{frame}[t]{Eric S. Raymond}
  \begin{columns}
    \column{.6\textwidth}
      \begin{itemize}
        \item<1-> 开源软件倡导者，著有众多颇具影响力的文章与书籍
        \item<2-> 1997年：The Cathedral and the Bazaar（大教堂与市集）
        \item<3-> 2003年：The Art of Unix Programming（Unix编程艺术）
        \item<4-> 2005年：How To Become A Hacker（如何成为一名黑客）
      \end{itemize}

    \column{.4\textwidth}
      \includegraphics[width=3.5cm]{pic/Esr.jpg}
  \end{columns}
\end{frame}

\section{Linux vs. Windows}

\begin{frame}[t]{CLI vs. GUI}
  \begin{itemize}
    \item<1-> Windows开发社区过于注重图形界面
    \item<2-> Linux开发社区则两者兼具
    \item<3-> 在Linux下几乎可以用命令行办到任何事情
    \item<4-> 掌握命令行是成为黑客的基本要求
  \end{itemize}
\end{frame}

\begin{frame}[t]{Clean vs. Dirty}
  \begin{itemize}
    \item<1-> Windows使用注册表保存系统和用户配置
    \item<2-> 注册表不方便查阅、修改，拖慢系统的速度
    \item<3-> Linux的宗旨：\alert{Everything is a FILE}
    \item<4-> 因此Linux的使用是很舒适的
  \end{itemize}
\end{frame}

\begin{frame}[t]{Crystal（水晶）vs. Black Box}
  \begin{itemize}
    \item<1-> 在Windows上开发需要很多摸索与揣测
    \item<2-> Windows的开发文档不够深入与详细
    \item<3-> Linux系统本身提供了强大的文档查阅功能
    \item<4-> 即使没有文档，你也可以看到源代码
    \item<5-> 你可以打造自己的系统与软件
  \end{itemize}
\end{frame}

\begin{frame}[t]{Air vs. Beehive（蜂窝）}
  \begin{itemize}
    \item<1-> Windows就像一个千疮百孔的蜂窝
    \item<1-> Windows有打不完的补丁和bug
    \item<2-> Linux就像飘散的空气
    \item<2-> 你无法去攻击空气
    \item<3-> 如果全世界的服务器都使用Windows，那人类的生活将会面临崩溃
  \end{itemize}
\end{frame}

\section{简明黑客指南}

\begin{frame}[t]{指南一：Linux发行版}
  \begin{itemize}
    \item<2-> 即安即用：Ubuntu，Fedora，openSUSE，Red Hat等
    \item<3-> 安装后需要自己定制：Arch等
    \item<4-> 从安装到使用全部需要从源代码编译：Gentoo等
    \item<5-> \alert{适合你的就是最好的}
  \end{itemize}
\end{frame}

\begin{frame}[t]{指南二：编程语言}
  \begin{itemize}
    \item<2-> C
    \item<2-> Shell Script
    \item<2-> Perl
    \item<2-> Python
    \item<2-> Lisp
  \end{itemize}
\end{frame}

\begin{frame}[t]{指南三：编辑器}
  \pause

  \begin{columns}
    \column{.5\textwidth}
      \begin{figure}[htbp]
        \centering
        \includegraphics[width=4cm]{pic/Emacs_logo.png}

        Emacs - 神的编辑器
      \end{figure}

      
    \column{.5\textwidth}
      \begin{figure}[htbp]
        \centering
        \includegraphics[width=3cm]{pic/Vim_logo.png}

        Vim - 编辑器之神
      \end{figure}
  \end{columns}
\end{frame}

\begin{frame}[t]{Editor（编辑器）\& IDE}
  \begin{itemize}
    \item IDE：Integrated Development Environment，集成开发环境
    \item IDE的典型代表：Visual Studio，Turbo C，Dev-C++，Eclipse等
    \item Editor的典型代表：Emacs，Vim，Notepad++，UltraEdit等
  \end{itemize}
\end{frame}

\begin{frame}[t]{指南四：常用工具}
  \begin{itemize}
    \item<2-> 自动化编译工具：\texttt{make}
    \item<3-> 版本控制：Subversion (SVN)，Git
    \item<4-> 排版：\LaTeX，DocBook，reStructuredText
    \item<5-> 聊天：IRC，邮件列表（如Google Groups）
  \end{itemize}
\end{frame}

\section{Linux@CUIT}

\begin{frame}[t]{桃源（Tao of Source）}
  \begin{block}{关于「桃源」}
    \begin{itemize}
      \item 由任柳江（renewjoy）发起，旨在推广Linux及开源
      \item 2008年7月开始发行电子杂志《桃源》，总共3期，后中止
      \item 2009年6月复刊，转为网站形式
      \item 「桃源」期待你的贡献与加入
    \end{itemize}
  \end{block}

  \begin{block}{更多「桃源」}
    \begin{itemize}
      \item 网站：\url{http://linux.cuit.edu.cn/}
      \item Twitter：\url{https://twitter.com/taoofsource}
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}[t]{Linux开源作品}
  \begin{block}{WordJoy}
    \begin{itemize}
      \item 由任柳江（renewjoy）开发
      \item 帮助有效记忆单词
      \item 项目主页：\url{http://code.google.com/p/wordjoy/}
    \end{itemize}
  \end{block}
  \pause
  \begin{block}{GUI H3C Client}
    \begin{itemize}
      \item 由雷宇田（Ray）开发
      \item 针对Linux下H3C没有图形界面，大大增强用户体验
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}[t]{Linux交流}
  \begin{itemize}
    \item 「桃源」网站：\url{http://linux.cuit.edu.cn/}
    \item CUIT技术网：\url{http://tech.cuit.edu.cn/}
    \item QQ群：20461383
  \end{itemize}

  \begin{flushright}
    \LaN
  \end{flushright}
\end{frame}

\begin{thebibliography}{99}
  \bibitem{TAOUP} Eric S. Raymond. \emph{The Art of Unix Programming}. Addison-Wesley, September 17, 2003, ISBN 0-13-142901-9.
  \bibitem{HTBAH} Eric S. Raymond. \emph{How To Become A Hacker}. Available online from \url{http://www.catb.org/~esr/faqs/hacker-howto.html}
  \bibitem{Unix} Wikipedia. \emph{Unix}. Available online from \url{http://en.wikipedia.org/wiki/Unix}
  \bibitem{GNU} Wikipedia. \emph{GNU Project}. Available online from \url{http://en.wikipedia.org/wiki/GNU_project}
  \bibitem{Linux} Wikipedia. \emph{History of Linux}. Available online from \url{http://en.wikipedia.org/wiki/History_of_Linux}
  \bibitem{Ken} The Linux Information Project. \emph{Ken Thompson: A Brief Introduction}. Available online from \url{http://www.linfo.org/thompson.html}
\end{thebibliography}

\end{document}